package com.itlong.cloud.property.dao;

import com.itlong.cloud.POJO.DTO.property.ParkPlaceProjectInfoDTO;
import com.itlong.cloud.POJO.VO.property.PropertyTemporaryCarFeeRecordVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      物业-智慧停车-停车场出入记录访问数据库接口.
 * </desc>
 *
 * @createDate 2018/11/5
 */
@Mapper
@Repository
public interface IPropertyParkingPassRecordDao {


    /**
     * <desc>
     *      停车场入场记录分页查询
     * <desc/>
     *
     * @param params 分页查询参数
     * @return 标准返回结果
     * @author Juguang.S
     * @createDate 2018/11/5
     */
    List<PropertyTemporaryCarFeeRecordVO> getAdmissionRecordPage(Map<String,Object> params);

    /**
     * <desc>
     *      停车场入场记录分页查询总记录数
     * <desc/>
     *
     * @param params 分页查询参数
     * @return 总记录数
     * @author Juguang.S
     * @createDate 2018/11/5
     */
    Integer getAdmissionRecordCount(Map<String,Object> params);

    /**
     * <desc>
     *      停车场出场记录分页查询
     * <desc/>
     *
     * @param params 分页查询参数
     * @return 标准返回结果
     * @author Juguang.S
     * @createDate 2018/11/5
     */
    List<PropertyTemporaryCarFeeRecordVO> getAppearanceRecordPage(Map<String,Object> params);

    /**
     * <desc>
     *      停车场出场记录分页查询总记录数
     * <desc/>
     *
     * @param params 分页查询参数
     * @return 总记录数
     * @author Juguang.S
     * @createDate 2018/11/5
     */
    Integer getAppearanceRecordCount(Map<String,Object> params);

    /**
     * <desc>
     *      获取当前开通了停车场的项目信息
     * </desc>
     *
     * @createDate 2018/11/08
     * @author Jiaqi.X
     */
    List<ParkPlaceProjectInfoDTO> getInStatusProjectIds();

    /**
     * <desc>
     *      获取项目下处于入场状态下的所有parkingId
     * </desc>
     *
     * @param projectId
     * @return
     * @createDate 2018/11/08
     * @author Jiaqi.X
     */
    List<String> getInStatusParkingIdByProjectId(@Param("projectId") String projectId);

    /**
     * <desc>
     *      获取项目下处于入场状态下的所有车牌号
     * </desc>
     *
     * @param projectId
     * @return
     * @createDate 2018/11/08
     * @author Jiaqi.X
     */
    List<String> getInPlantNoByProjectId(@Param("projectId") String projectId);

    /**
     * <desc>
     *     获取项目停车场的key
     * </desc>
     *
     * @param projectId
     * @return
     * @author Jiaqi.X
     * @createDate 2018/11/08
     */
    String getParkingLotKey(@Param("projectId") String projectId);
}
